package com.youlu.campus.entity.VO.req;

import com.youlu.campus.base.order.AddressInfo;
import com.youlu.campus.entity.VO.res.CaReceiveConfigRes;
import com.youlu.campus.entity.domain.ActivityTaskDataDomain;
import com.youlu.campus.entity.domain.CsInfoDomain;
import lombok.Getter;
import lombok.Setter;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;

@Getter
@Setter
public class ReceiveCaVO implements Serializable {
    /**
     * 用户证书ID
     */
    private String userCaInfoId;
    /**
     * 证书材质,0:电子,1:纸质
     */
    protected Integer material = 0;
    /**
     * 地址信息
     */
    private AddressInfo addressInfo;
    private String userId;
    private String activityId;
    /**
     * 昵称
     */
    private String nickName;
    /**
     * 姓名
     */
    private String name;
    /**
     * 头像
     */
    protected String avatarUrl;
    /**
     * 大学名称
     */
    private String universityName;
    /**
     * 电子证书说明,富文本
     */
    private String digitalCaDetail;
    /**
     * 客服信息
     */
    private List<CsInfoDomain> csInfos = new ArrayList<>();

    /**
     * 奖励发放开始时间
     */
    private Date incentivesStartTime;
    /**
     * 奖励发放结束时间
     */
    private Date incentivesEndTime;
    /**
     * 活动主题色,配置:default、green、red、gray
     */
    private String themeColor = "default";
    /**
     * 前端排版编号,1,2,3
     */
    private String layoutNo = "2";
    /**
     * 活动数据
     */
    private HashMap<String, ActivityTaskDataDomain> datas = new HashMap<>();
    /**
     * 电子证书信息
     */
    private HashMap<String, RecieveCaDetailVO> digitCas = new HashMap<>();
    /**
     * 纸质证书信息
     */
    private HashMap<String, RecieveCaDetailVO> paperCas = new HashMap<>();
    /**
     * 是否报名
     */
    private Boolean joined = Boolean.FALSE;
    /**
     * 报名后客服信息,富文本,公众号二维码
     */
    private String afterSignUpCsDetail;
    /**
     * 跳转地址
     */
    private String url;
    /**
     * 是否显示电子版证书
     */
    private Boolean showDigitCa = Boolean.TRUE;
    /**
     * 是否显示我的订单
     */
    private Boolean showMyOrders = Boolean.FALSE;
    /**
     * 领取奖励联系我们富文本
     */
    private String recieveRewardDetail;

    private String recieveCaDetail;

    private Boolean otherPlatform;

    private CaReceiveConfigRes caReceiveConfig;

    /**
     * 个人信息颜色值
     */
    private String colorValueUserInfo;


    /**
     * 是否展示证书用户信息 true 展示 false
     */
    private Boolean userInfoCertificateShow = Boolean.FALSE;
    /**
     * 邀请人数
     */
    private Integer invitedNum;
    /**
     * 是否在收款显示投诉
     */
    private Boolean showPayComplaintButton = Boolean.TRUE;
    /**
     * 是否启用周期时间
     */
    private Boolean hasCycleTime=Boolean.FALSE;
    /**
     * 周期时长，单位秒
     */
    private Integer cycleTime;
    /**
     * 前端配置
     */
    private String frontConfig;
}
